package com.ruoyi.fitsculpt.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.ruoyi.common.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableField;

/**
 * 饮食计划对象 easyfit_diet_plans
 *
 * @author metaee
 * @date 2025-02-27
 */
@ApiModel("饮食计划对象")
public class EasyfitDietPlans extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 计划ID
     */
    @ApiModelProperty("计划ID")
    @Excel(name = "计划ID")
    private Long planId;

    /**
     * 用户ID
     */
    @ApiModelProperty("用户ID")
    @Excel(name = "用户ID")
    private Long userId;

    /**
     * 目标ID
     */
    @ApiModelProperty("目标ID")
    @Excel(name = "目标ID")
    private Long goalId;

    /**
     * 计划名称
     */
    @ApiModelProperty("计划名称")
    @Excel(name = "计划名称")
    private String planName;

    /**
     * 每日目标卡路里
     */
    @ApiModelProperty("每日目标卡路里")
    @Excel(name = "每日目标卡路里")
    private Long dailyCalories;

    /**
     * 碳水化合物比例
     */
    @ApiModelProperty("碳水化合物比例")
    @Excel(name = "碳水化合物比例")
    private BigDecimal carbsRatio;

    /**
     * 蛋白质比例
     */
    @ApiModelProperty("蛋白质比例")
    @Excel(name = "蛋白质比例")
    private BigDecimal proteinRatio;

    /**
     * 脂肪比例
     */
    @ApiModelProperty("脂肪比例")
    @Excel(name = "脂肪比例")
    private BigDecimal fatRatio;

    /**
     * 开始日期
     */
    @ApiModelProperty("开始日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startDate;

    /**
     * 结束日期
     */
    @ApiModelProperty("结束日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endDate;

    /**
     * 1:进行中 2:已完成 3:已终止
     */
    @ApiModelProperty("1:进行中 2:已完成 3:已终止")
    @Excel(name = "1:进行中 2:已完成 3:已终止")
    private Long status;

    /** 关联的用户信息 */
    @TableField(exist = false)
    private EasyfitUsers user;

    public Long getPlanId() {
        return planId;
    }

    public void setPlanId(Long planId) {
        this.planId = planId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getGoalId() {
        return goalId;
    }

    public void setGoalId(Long goalId) {
        this.goalId = goalId;
    }

    public String getPlanName() {
        return planName;
    }

    public void setPlanName(String planName) {
        this.planName = planName;
    }

    public Long getDailyCalories() {
        return dailyCalories;
    }

    public void setDailyCalories(Long dailyCalories) {
        this.dailyCalories = dailyCalories;
    }

    public BigDecimal getCarbsRatio() {
        return carbsRatio;
    }

    public void setCarbsRatio(BigDecimal carbsRatio) {
        this.carbsRatio = carbsRatio;
    }

    public BigDecimal getProteinRatio() {
        return proteinRatio;
    }

    public void setProteinRatio(BigDecimal proteinRatio) {
        this.proteinRatio = proteinRatio;
    }

    public BigDecimal getFatRatio() {
        return fatRatio;
    }

    public void setFatRatio(BigDecimal fatRatio) {
        this.fatRatio = fatRatio;
    }

    public Date getStartDate() {
        return startDate;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public Long getStatus() {
        return status;
    }

    public void setStatus(Long status) {
        this.status = status;
    }

    public EasyfitUsers getUser() {
        return user;
    }

    public void setUser(EasyfitUsers user) {
        this.user = user;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("planId", getPlanId())
                .append("userId", getUserId())
                .append("goalId", getGoalId())
                .append("planName", getPlanName())
                .append("dailyCalories", getDailyCalories())
                .append("carbsRatio", getCarbsRatio())
                .append("proteinRatio", getProteinRatio())
                .append("fatRatio", getFatRatio())
                .append("startDate", getStartDate())
                .append("endDate", getEndDate())
                .append("status", getStatus())
                .append("createTime", getCreateTime())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
